
<html>
  <head>
    <title>SLOC</title>
    <link rel="stylesheet" type="text/css" href="pynocle.css" media="screen" />
    <script type='text/javascript' src='https://www.google.com/jsapi'></script>
    <script type='text/javascript'>
      google.load('visualization', '1', {packages:['table']});
      google.setOnLoadCallback(drawTable);
      function drawTable() {
        var data = new google.visualization.DataTable();
        
        data.addColumn('string', 'Filename');
        data.addColumn('number', 'Code');
        data.addColumn('number', 'Code%');
        data.addColumn('number', 'Comment');
        data.addColumn('number', 'Comment%');
        data.addColumn('number', 'Blank');
        data.addColumn('number', 'Blank%');
        data.addColumn('number', 'Total');
        data.addColumn('number', 'Total%');

        data.addRow(['__init__', 221, {'f': '82.8%', 'v': 0.8277153558052435}, 10, {'f': '3.7%', 'v': 0.03745318352059925}, 36, {'f': '13.5%', 'v': 0.1348314606741573}, 267, {'f': '11.2%', 'v': 0.11227922624053827}]);

        data.addRow(['_modulefinder', 123, {'f': '76.9%', 'v': 0.76875}, 12, {'f': '7.5%', 'v': 0.075}, 25, {'f': '15.6%', 'v': 0.15625}, 160, {'f': '6.7%', 'v': 0.0672834314550042}]);

        data.addRow(['cyclcompl\\__init__', 3, {'f': '60.0%', 'v': 0.6}, 1, {'f': '20.0%', 'v': 0.2}, 1, {'f': '20.0%', 'v': 0.2}, 5, {'f': '0.2%', 'v': 0.0021026072329688814}]);

        data.addRow(['cyclcompl\\_doc', 19, {'f': '79.2%', 'v': 0.7916666666666666}, 1, {'f': '4.2%', 'v': 0.041666666666666664}, 4, {'f': '16.7%', 'v': 0.16666666666666666}, 24, {'f': '1.0%', 'v': 0.010092514718250631}]);

        data.addRow(['cyclcompl\\formatting', 59, {'f': '76.6%', 'v': 0.7662337662337663}, 2, {'f': '2.6%', 'v': 0.025974025974025976}, 16, {'f': '20.8%', 'v': 0.2077922077922078}, 77, {'f': '3.2%', 'v': 0.032380151387720775}]);

        data.addRow(['cyclcompl\\statbuilder', 118, {'f': '80.8%', 'v': 0.8082191780821918}, 1, {'f': '0.7%', 'v': 0.00684931506849315}, 27, {'f': '18.5%', 'v': 0.18493150684931506}, 146, {'f': '6.1%', 'v': 0.061396131202691336}]);

        data.addRow(['depgraph\\__init__', 4, {'f': '66.7%', 'v': 0.6666666666666666}, 1, {'f': '16.7%', 'v': 0.16666666666666666}, 1, {'f': '16.7%', 'v': 0.16666666666666666}, 6, {'f': '0.3%', 'v': 0.002523128679562658}]);

        data.addRow(['depgraph\\_doc', 38, {'f': '77.6%', 'v': 0.7755102040816326}, 0, {'f': '0.0%', 'v': 0.0}, 11, {'f': '22.4%', 'v': 0.22448979591836735}, 49, {'f': '2.1%', 'v': 0.02060555088309504}]);

        data.addRow(['depgraph\\depbuilder', 149, {'f': '84.2%', 'v': 0.8418079096045198}, 6, {'f': '3.4%', 'v': 0.03389830508474576}, 22, {'f': '12.4%', 'v': 0.12429378531073447}, 177, {'f': '7.4%', 'v': 0.0744322960470984}]);

        data.addRow(['depgraph\\formatting', 92, {'f': '76.7%', 'v': 0.7666666666666667}, 1, {'f': '0.8%', 'v': 0.008333333333333333}, 27, {'f': '22.5%', 'v': 0.225}, 120, {'f': '5.0%', 'v': 0.050462573591253154}]);

        data.addRow(['depgraph\\pagerank', 184, {'f': '77.0%', 'v': 0.7698744769874477}, 16, {'f': '6.7%', 'v': 0.06694560669456066}, 39, {'f': '16.3%', 'v': 0.16317991631799164}, 239, {'f': '10.1%', 'v': 0.10050462573591253}]);

        data.addRow(['depgraph\\rendering', 269, {'f': '79.8%', 'v': 0.798219584569733}, 18, {'f': '5.3%', 'v': 0.05341246290801187}, 50, {'f': '14.8%', 'v': 0.14836795252225518}, 337, {'f': '14.2%', 'v': 0.1417157275021026}]);

        data.addRow(['depgraph\\test_pagerank', 50, {'f': '83.3%', 'v': 0.8333333333333334}, 6, {'f': '10.0%', 'v': 0.1}, 4, {'f': '6.7%', 'v': 0.06666666666666667}, 60, {'f': '2.5%', 'v': 0.025231286795626577}]);

        data.addRow(['funcinfo\\__init__', 21, {'f': '67.7%', 'v': 0.6774193548387096}, 1, {'f': '3.2%', 'v': 0.03225806451612903}, 9, {'f': '29.0%', 'v': 0.2903225806451613}, 31, {'f': '1.3%', 'v': 0.013036164844407064}]);

        data.addRow(['inheritance\\__init__', 46, {'f': '71.9%', 'v': 0.71875}, 1, {'f': '1.6%', 'v': 0.015625}, 17, {'f': '26.6%', 'v': 0.265625}, 64, {'f': '2.7%', 'v': 0.02691337258200168}]);

        data.addRow(['sloc\\__init__', 3, {'f': '60.0%', 'v': 0.6}, 1, {'f': '20.0%', 'v': 0.2}, 1, {'f': '20.0%', 'v': 0.2}, 5, {'f': '0.2%', 'v': 0.0021026072329688814}]);

        data.addRow(['sloc\\_doc', 14, {'f': '70.0%', 'v': 0.7}, 1, {'f': '5.0%', 'v': 0.05}, 5, {'f': '25.0%', 'v': 0.25}, 20, {'f': '0.8%', 'v': 0.008410428931875526}]);

        data.addRow(['sloc\\formatting', 75, {'f': '78.9%', 'v': 0.7894736842105263}, 2, {'f': '2.1%', 'v': 0.021052631578947368}, 18, {'f': '18.9%', 'v': 0.18947368421052632}, 95, {'f': '4.0%', 'v': 0.03994953742640875}]);

        data.addRow(['sloc\\slocing', 92, {'f': '79.3%', 'v': 0.7931034482758621}, 2, {'f': '1.7%', 'v': 0.017241379310344827}, 22, {'f': '19.0%', 'v': 0.1896551724137931}, 116, {'f': '4.9%', 'v': 0.04878048780487805}]);

        data.addRow(['tableprint', 58, {'f': '85.3%', 'v': 0.8529411764705882}, 1, {'f': '1.5%', 'v': 0.014705882352941176}, 9, {'f': '13.2%', 'v': 0.1323529411764706}, 68, {'f': '2.9%', 'v': 0.028595458368376788}]);

        data.addRow(['test_modulefinder', 65, {'f': '80.2%', 'v': 0.8024691358024691}, 0, {'f': '0.0%', 'v': 0.0}, 16, {'f': '19.8%', 'v': 0.19753086419753085}, 81, {'f': '3.4%', 'v': 0.03406223717409588}]);

        data.addRow(['test_utils', 58, {'f': '78.4%', 'v': 0.7837837837837838}, 1, {'f': '1.4%', 'v': 0.013513513513513514}, 15, {'f': '20.3%', 'v': 0.20270270270270271}, 74, {'f': '3.1%', 'v': 0.031118587047939444}]);

        data.addRow(['utils', 121, {'f': '77.1%', 'v': 0.7707006369426752}, 2, {'f': '1.3%', 'v': 0.012738853503184714}, 34, {'f': '21.7%', 'v': 0.21656050955414013}, 157, {'f': '6.6%', 'v': 0.06602186711522287}]);

        data.addRow(['TOTALS', 1882, {'f': '76.1%', 'v': 0.7610132621314124}, 87, {'f': '5.2%', 'v': 0.05188412568226801}, 409, {'f': '18.7%', 'v': 0.18710261218631974}, 2378, {'f': '100.0%', 'v': 0.9999999999999998}]);

        var table = new google.visualization.Table(document.getElementById('table_div'));
        table.draw(data, {showRowNumber: true});
      }
    </script>
  </head>

  <body>
    <h1>SLOC (Source Lines of Code)</h1>
<p>Useful to see the general size and distribution of code across the codebase.
The number of bugs in a codebase can be said in general to be proportional
to its lines of code, but this code metric is most useful in understanding
the codebase, rather than finding quality issues.</p>
<p>Measures physical source lines of code (SLOC), lines of comments,
and blank lines, in number and percentage of file.</p>
<p>Also measures total line count and as percentage of total codebase lines.</p>
<p>For more info, see <a name="the Wikipedia article on SLOC" href="http://en.wikipedia.org/wiki/Source_lines_of_code">the Wikipedia article on SLOC</a><target ids="the-wikipedia-article-on-sloc" names="the\ wikipedia\ article\ on\ sloc" href="http://en.wikipedia.org/wiki/Source_lines_of_code" />.</p>
<p>Showing SLOC for files under C:/PythonDev/pynocle/pynocle.</p><div id='table_div'></div>
  </body>
</html>